package com.ericsson.enap.modules.ebmLog.utils;

import com.ericsson.enap.modules.ebmLog.constant.EbmConstant;
import com.ericsson.enap.modules.ebmLog.entity.EbmVO;

import java.io.BufferedReader;
import java.io.IOException;

/**
 * @description:ebm多维工具类Util
 * @author: wangjingshi
 * @create: 2021-04-22 09:33
 */
public class EbmDimensionUtil {

    public static void setEvent_result(String lineTxt, EbmVO ebmVo) {
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setEvent_result(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setNasesmcausecode(String lineTxt, EbmVO ebmVo) {
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setNAS_ESM_CAUSE_CODE(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setMsisdn(String lineTxt, EbmVO ebmVo) {
        if (com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)) {
            ebmVo.setMSISDN(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setMsc(BufferedReader bufferedReader, EbmVO ebmVo) throws IOException {
        String lineTxt;
        lineTxt = bufferedReader.readLine();
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setMSC(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setPgw(BufferedReader bufferedReader, EbmVO ebmVo) throws IOException {
        String lineTxt;
        lineTxt = bufferedReader.readLine();
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setPGW(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setSgw(BufferedReader bufferedReader, EbmVO ebmVo) throws IOException {
        String lineTxt;
        lineTxt = bufferedReader.readLine();
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setSGW(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setApn(String lineTxt, EbmVO ebmVo) {
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setAPN(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setImeitac(String lineTxt, EbmVO ebmVo) {
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setIMEITAC(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2_10(lineTxt));
        }
    }

    public static void setImsiseriesAndImsi(String lineTxt, EbmVO ebmVo) {
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setIMSISERIES(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2_10(lineTxt));
            ebmVo.setIMSI(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }

    public static void setLai(BufferedReader bufferedReader, EbmVO ebmVo) throws IOException {
        String lineTxt;
        lineTxt = bufferedReader.readLine();
        String mcc = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        lineTxt = bufferedReader.readLine();
        String mnc = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        lineTxt = bufferedReader.readLine();
        String lac = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        ebmVo.setLAI(mcc+"-"+mnc+"-"+lac);
    }

    public static void setEciAndEnodeb(String lineTxt, EbmVO ebmVo) {
        //10进制eci
        String eci_10 = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        if(Integer.toBinaryString(Integer.parseInt(eci_10)).length()>8){
            //2进制enodeBid
            String enodeBid_2 = Integer.toBinaryString(Integer.parseInt(eci_10)).substring(0, Integer.toBinaryString(Integer.parseInt(eci_10)).length()-8);
            //10进制enodeBid
            String enodeBid_10 = Integer.valueOf(enodeBid_2,2).toString();
            ebmVo.setENODEB(enodeBid_10);
            //青岛移动
            ebmVo.setECI(eci_10);
        }
    }

    public static void setMmei(BufferedReader bufferedReader, EbmVO ebmVo) throws IOException {
        String lineTxt;
        lineTxt = bufferedReader.readLine();
        String mmegi = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        lineTxt = bufferedReader.readLine();
        String mmec = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        ebmVo.setMMEI(mmegi+"-"+mmec);
    }

    public static void setTaiAndTac(BufferedReader bufferedReader, EbmVO ebmVo) throws IOException {
        String lineTxt;
        lineTxt = bufferedReader.readLine();
        String mcc = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        lineTxt = bufferedReader.readLine();
        String mnc = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        lineTxt = bufferedReader.readLine();
        String tac = com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt);
        ebmVo.setTAI(mcc+"-"+mnc+"-"+tac);
        ebmVo.setTAC(tac);
    }

    public static void setCcScc(BufferedReader bufferedReader, String cclineTxt, EbmVO ebmVo) throws IOException {
        String scclineTxt;
        if(cclineTxt.contains(EbmConstant.K)) {
            if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum3_k(cclineTxt)) {
                ebmVo.setCc(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum3_k(cclineTxt));
                ebmVo.setCcdesc(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNumK(cclineTxt));
            }
        }else{
            //规避cause_code = 11这种不带括号的情况
            ebmVo.setCc(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(cclineTxt));
            ebmVo.setCcdesc("");
        }
        scclineTxt = bufferedReader.readLine();
        if(scclineTxt.contains(EbmConstant.K)) {
            if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum3_k(scclineTxt)) {
                ebmVo.setScc(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum3_k(scclineTxt));
                ebmVo.setSccdesc(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNumK(scclineTxt));
            }
        }else {
            //规避sub_cause_code = 919这种不带括号的情况
            ebmVo.setScc(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(scclineTxt));
            ebmVo.setSccdesc("");
        }
    }

    public static void setAttach_type(String lineTxt, EbmVO ebmVo) {
        if(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.matchNum2(lineTxt)){
            ebmVo.setATTACHTYPE(com.ericsson.enap.modules.ebmLog.utils.EbmLogUtil.subStringNum2(lineTxt));
        }
    }
}
